package com.xinqi.modules.exam.paper.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xinqi.common.mybatis.data.entity.BaseEntity;
import com.xinqi.modules.exam.paper.enums.ExamRandomStrategyEnum;
import com.xinqi.modules.exam.paper.enums.IsPublishAnswerEnum;
import com.xinqi.modules.exam.paper.enums.IsPublishScoreEnum;
import com.xinqi.modules.exam.paper.enums.MultipleOptionScoreEnum;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 课程测评配置实体层
 *
 * @author: linkai
 * @date: 2023/07/02
 */
@Setter
@Getter
@TableName("co_course_exam_paper_config")
public class CourseExamPaperConfigEntity extends BaseEntity {
    /**
     * 测评ID
     */
    @TableField(value = "exam_paper_id")
    private Long examPaperId;
    /**
     * 是否限制答题时间
     */
    @TableField(value = "is_limit_answer_time")
    private Integer isLimitAnswerTime;
    /**
     * 答题时间长（分钟）
     */
    @TableField(value = "answer_duration")
    private Long answerDuration;
    /**
     * 截止进入时间
     */
    @TableField(value = "cutoff_entry_time")
    private LocalDateTime cutoffEntryTime;
    /**
     * 是否允许交卷后查看试卷
     */
    @TableField(value = "is_submit_view")
    private Integer isSubmitView;
    /**
     * 是否公布成绩，0:不公布； 1:到截止时间公布；2:批阅后公布；
     */
    @TableField(value = "is_publish_score")
    private IsPublishScoreEnum isPublishScore;
    /**
     * 是否公布答案，0:不公布； 1:到截止时间公布；
     */
    @TableField(value = "is_publish_answer")
    private IsPublishAnswerEnum isPublishAnswer;
    /**
     * 答题样式，1-卡片式；2-一页式
     */
    @TableField(value = "answer_style")
    private Integer answerStyle;
    /**
     * 答题中返回上一题
     */
    @TableField(value = "is_return_prev")
    private Integer isReturnPrev;
    /**
     * 多选题得分
     */
    @TableField(value = "multiple_option_score")
    private MultipleOptionScoreEnum multipleOptionScore;
    /**
     * 随机题目策略
     */
    @TableField(value = "exam_random_strategy")
    private ExamRandomStrategyEnum examRandomStrategy;
    /**
     * 是否发送
     */
    @TableField(value = "is_send")
    private Integer isSend;
    /**
     * 是否同步到其他班级
     */
    @TableField(value = "is_send_class")
    private Integer isSendClass;
    /**
     * 发送到其他班级
     */
    @TableField(value = "send_class")
    private List<Long> sendClass;
    /**
     * 是否限制切屏
     */
    @TableField(value = "is_limit_screen_switch")
    private Integer isLimitScreenSwitch;
    /**
     * 限制切屏次数
     */
    @TableField(value = "limit_screen_switch_num")
    private Integer limitScreenSwitchNum;
    /**
     * 扩展字段
     */
    @TableField(value = "extend")
    private String extend;
}
